from datetime import timedelta

from django.utils import timezone

from polls.models import User
from vote2003 import app


@app.task
def check_inactive_user():
    """将30天未登录的用户标记为不活跃用户"""
    time_before_30days = timezone.now() - timedelta(days=30)
    User.objects.filter(last_visit__lte=time_before_30days)\
        .filter(is_active=True).update(is_active=False)


@app.task
def update_user_votecount():
    """将活跃用户的投票数量重置为5票"""
    # 如果用户的投票数可以累积，可以利用F对象进行更新操作
    # User.objects.filter(is_active=True).update(vote_count=F('vote_count') + 5)
    User.objects.filter(is_active=True).update(vote_count=5)
